var afficheDevList = function() {
	var construireListe = function(data) {
		$('#dev').empty();
		$.each(data, function(key, dev) {
			var lien = $('<a/>', {
				href : "#dev/"+dev.trigram,
				html : dev.name
			})
			var li = $('<li/>', {
				id : dev.trigram
			}).append(lien)
			.appendTo('#dev');
		});
		analyseAncre(location.hash.slice(1));
	}
	$.getJSON('dev/list?sortBy=nb_livraison', function(data) {
		construireListe(data);
	});
}

var afficheDev = function(userName) {
	$("#dev li").removeClass( "selected" );
	$("#dev li#"+userName).addClass( "selected" );
	$('#info #achievement').empty();


	$.getJSON('dev?name='+userName, function(dev) {
		selectedDev = dev;
		$("#info h1 input").val(dev.name);
		$("#info .nbLivraison").html(dev.nombreLivraison);
		$("#info #date input").val(dev.lastLivraison);
		$('#info #nombre input').val(0);
		$.each(dev.achievements, function(key, achievement) {
			afficheAchievement($('#info #achievement'), achievement);
		});
	});
}

var analyseAncre = function(ancre){
	var param = ancre.split("/");
	var action = param[0];
	if(action == "dev") {
		afficheDev(param[1]);
	}
}

$(function() {
	$('input').prop('disabled', true);
	isAdmin(function(){
		$('.admin').show();
		$('<img/>', {
			src : "image/cleardot.gif"
		}).addClass("star").appendTo('#user');
		$('<div/>').append("Trigramme")
				   .append(
						$('<input/>', {
							type:"text",
							id:"nom"
						}))
					.append("<br/>Date")
					.append(
						$('<input/>', {
							type:"text",
							id:"date"
						})).appendTo("#ajout");

		$('<div/>', {
			id:"ajouter",
			html:"Ajouter"
		}).addClass("button").appendTo("#ajout").click(function() {
			var dev = {};
			dev.trigram = $('#nom').val();
			dev.name = $('#nom').val();
			dev.lastLivraison = $('#ajout #date').val();
			$.post("dev", {"request": JSON.stringify(dev)}, function(data) {
				afficheDevList();
				location.hash="#dev/"+$('#nom').val();
			});
		});
		
		$('<div/>', {
			id:"changer",
			html:"Changer"
		}).addClass("button").appendTo("#info").click(function() {
			var dev = selectedDev;
			dev.name =  $('#info h1 input').val();
			dev.lastLivraison = $('#info #date input').val();
			dev.nombreLivraison = parseInt(dev.nombreLivraison) + parseInt($('#info #nombre input').val());
			$.post("dev", {"request": JSON.stringify(dev)}, function(data) {
				afficheDevList();
				location.hash="#dev/"+selectedDev.trigram;
			});
		});
		
		$('input').prop('disabled', false);
	}, function(){});
	$('.admin').hide();
	afficheDevList();
	$(window).bind('hashchange', function () {
		analyseAncre(location.hash.slice(1));
    });
});